package com.quan.common.core.support;

import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.github.pagehelper.Page;
import com.quan.common.base.bean.PageBean;

import tk.mybatis.mapper.common.ConditionMapper;
import tk.mybatis.mapper.common.IdsMapper;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;

/**
 * 继承自己的BaseMapper
 * @author yhaoquan
 * @param <T>
 */
public interface BaseMapper <T> extends Mapper<T>, MySqlMapper<T>, ConditionMapper<T>, IdsMapper<T> {
    //TODO
    //FIXME 特别注意，该接口不能被扫描到，否则会出错
	
	/**
	 * 分页查询<br>
	 * <b style="color:red">注：需要自己定义相应的Mapper标签</b>
	 * @param entity 条件：实体对象
	 * @param pageBean 分页对象
	 * @return
	 */
	public Page<T> selectPage(@Param("entity") T entity, @Param("pageBean") PageBean pageBean) ;
	
	/**
	 * 分页查询<br>
	 * <b style="color:red">注：需要自己定义相应的Mapper标签</b>
	 * @param params 条件：Map集合<对象属性, 值>
	 * @param pageBean 分页对象
	 * @return
	 */
	public Page<T> selectPageByMap(@Param("params") Map<String, Object> params, @Param("pageBean") PageBean pageBean) ;
	
}
